/*
 * Graph.h
 *
 *  Created on: Mar 22, 2014
 *      Author: zby
 */

#ifndef TEST_GRAPH_H_
#define TEST_GRAPH_H_
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestSuite.h>
#include <cppunit/Test.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestCaller.h>
#include <cppunit/TestAssert.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/XmlOutputter.h>
//-------------------------------
#include "Graph.h"

using namespace graph;

class Test_Graph: public CppUnit::TestFixture
{
    private:
        Graph *g1,*g2;
    public:
        void setUp()
        {
            g1 = new Graph(4);
            g2 = new Graph(7*7);
        }

        Test_Graph(){};
        ~Test_Graph(){};
        void test_def_constructor(void);
        void test_def_constructor_cpy(void);
        void test_AddEdge(void);
        void test_DeleteEdge(void);
        void test_Adjacent(void);
        void test_E(void);
        void test_Neighbors(void);
        void test_Get_node_value(void);
        void test_Set_node_value(void);
        void test_Get_edge_value(void);
        void test_Set_edge_value(void);
        void test_friend_op(void);

        static CppUnit::Test* suite();

        void tearDown()
        {
            delete g1;
            delete g2;
        }
};

#endif /* GRAPH_H_ */
